深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)
The following article is from Datawhale Author Datawhale
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
入门深度学习,很多人经历了从入门到放弃的心酸历程,且千军万马倒在了入门第一道关卡:环境配置问题。俗话说,环境配不对,学习两行泪。
如果你正在面临配置环境的痛苦,不管你是Windows用户、Ubuntu用户还是苹果死忠粉,这篇文章都是为你量身定制的。接下来就依次讲下Windows、Mac和Ubuntu的深度学习环境配置问题。
一、Windows系统深度学习环境配置
安装组合:Anaconda+PyTorch(GPU版)+GTX1060
1.1 打开Anaconda Prompt
1.2 确定硬件支持的CUDA版本
NVIDIA控制面板-帮助-系统信息-组件
1.3 确定pytorch版本,torchvision版本
进入pytorch官网:https://pytorch.org/get-started/locally/
因为官方源太慢了,这里使用清华源下载
1.4 镜像中下载对应的安装包
清华镜像:
pytorch:
torchvision:
1.5 本地安装
然后回到虚拟环境所在目录,用conda install anaconda安装环境所需的基础包
1.6 测试
代码1:
from future import print_function
import torch
x = torch.rand(5, 3)
print(x)
import torch
torch.cuda.is_available()
如果以上两段代码输出无异常,表明环境搭建成功。
1.7 遇到的问题
用下面命令创建虚拟环境报错
conda create -n py37_torch131 python=3.7
环境会保存在Anaconda目录下的envs文件夹内
PackagesNotFoundError: The following packages are not available from current channels
conda下载太慢问题
我直呼一声清华NB!
cuda安装
pytorch安装
conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
jupyter note如何进入虚拟环境
python -m ipykernel install --name 虚拟环境名
1.打开Anaconda Prompt,输入conda env list 查看现有环境
2.输入activate name(name是你想切换的环境)
3.conda install ipykernel 安装必要插件
4.python -m ipykernel install --name Name 将环境添加到Jyputer中(Name是此环境显示在Jyputer中的名称,可自定义)
删除内核
jupyter kernelspec remove 内核名称
[Errno 13] Permission denied: ‘/usr/local/share/jupyter’
python -m ipykernel install --user --name py27-caffe-notebook
至此,添加kernel完成。查看已有的kernel:
jupyter kernelspec list
删除已有的kernel
jupyter kernelspec remove kernelname
以上的命令删除仅仅是配置文件,并没有卸载相应虚拟环境的ipykernel,因此若要再次安装相应python虚拟环境的kernel,只需激活虚拟环境,然后
python -m ipykernel install --name kernelname
conda安装一半总失败
把文件下载到本地,进入该文件的目录,然后用命令
conda install --offline 包名
2.1 安装Anaconda
2.2 确认下载情况
在Mac 的Terminal 里,输入
python --version
确保安装的Python 是3.x 版本。在Terminal 输入
jupyter notebook
2.2.1 常见问题
如果电脑中下载了多个Anaconda,运行时可能出现冲突。在Terminal 中输入
cd ~
返回home 目录,输入
cat .bash_profile
如果只能看到一个Anaconda 版本就没有问题。如果有多个则下载包时有可能
造成一定的冲突。用vim、nano 或其他文本编辑器把旧版本Anaconda 的
export PATH= ...
删除。
2.3 虚拟环境和包的下载
用conda 去创建虚拟环境和下载对应的包是很简单的一件事。
2.3.1 Graphic
之后在Home 页面,确保左上角指向的是你刚刚创建的环境名,在这个环境下install jupyter notebook,注意原本装的notebook 是在base 里的,不可通用。
回到Environments 中,可以看到在此环境中的所有包,左上方选择All,然后输入想要下载的包名
然后选中进行下载
2.3.2 Command Line
用command line 完成以上的操作也很简洁。这次以Pytorch 为例。在Terminal 中输入
conda create --name env_name
就可以创建一个虚拟环境,叫“env_name”。输入
conda env list
即可看到创建了的所有虚拟环境,其中打* 的就是当前环境。输入
conda activate env_name
进入环境
conda deactivate
退出当前虚拟环境,进入base。
2.3.3 下载Pytorch
conda install pytorch torchvision -c pytorch
复制下来,粘贴到Terminal 中运行就可以开始下载了。
下载完成后,在Terminal 输入
python3
之后import 两个刚下载的包,确认下载完成
import torch
import torchvision
print(torch.__version__)
print(torchvision.__version__)
quit()
就ok 了。
2.4 额外情况
点击下面的64-Bit (x86) Installer (522 MB),下载64位的版本。
下载完后的文件名是:Anaconda3-2020.02-Linux-x86_64.sh。
cd到Anaconda3-2020.02-Linux-x86_64.sh所在的目录:
接下来手动加入环境变量,先cd到~,然后编辑.bashrc文件:sudo vim .bashrc
# 区分anaconda python与系统内置python
alias python3="/usr/bin/python3.5"
alias python2="/usr/bin/python2.7"
. /home/cxd/anaconda3/etc/profile.d/conda.sh
输入source .bashrc来执行刚修改的初始化文档
3.2 pytorch cpu版本安装
打开pytorch官网:https://pytorch.org/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
conda install pytorch torchvision cpuonly -c pytorch
import torch
print(torch.__version__)
3.3 pytorch-gpu安装
3.3.1 GPU驱动安装
检测显卡类型
执行命令:' ubuntu-drivers devices'
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C8Dsv00001028sd0000086Fbc03sc02i00
vendor : NVIDIA Corporation
model : GP107M [GeForce GTX 1050 Mobile]
driver : nvidia-driver-390 - distro non-free
driver : nvidia-driver-435 - distro non-free
driver : nvidia-driver-440 - distro non-free recommended
driver : xserver-xorg-video-nouveau - distro free builtin
== /sys/devices/pci0000:00/0000:00:14.3 ==
modalias : pci:v00008086d0000A370sv00008086sd000042A4bc02sc80i00
vendor : Intel Corporation
model : Wireless-AC 9560 [Jefferson Peak]
manual_install: True
driver : backport-iwlwifi-dkms - distro free
大家可以看到,这里有个设备是GTX1050。推荐安装驱动是440。
安装驱动
安装所有推荐驱动
sudo ubuntu-drivers autoinstall
安装一个驱动
sudo apt install nvidia-440
3.3.2 安装cuda
cuda安装需要对应合适的显卡驱动。下面是驱动和cuda的版本对应关系
Table 1. CUDA Toolkit and Compatible Driver Versions
CUDA Toolkit Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 10.2.89 >= 440.33 >= 441.22
CUDA 10.1 (10.1.105 general release, and updates) >= 418.39 >= 418.96
CUDA 10.0.130 >= 410.48 >= 411.31
CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26
CUDA 9.2 (9.2.88) >= 396.26 >= 397.44
CUDA 9.1 (9.1.85) >= 390.46 >= 391.29
CUDA 9.0 (9.0.76) >= 384.81 >= 385.54
CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51
CUDA 8.0 (8.0.44) >= 367.48 >= 369.30
CUDA 7.5 (7.5.16) >= 352.31 >= 353.66
CUDA 7.0 (7.0.28) >= 346.46 >= 347.62
cuda下载链接:http://suo.im/6dY8rL
Installer Type选择第一第二个都可。但是要在获得cuda文件后先检测gcc版本。下面以第一个runfile(local)安装方式为例。
安装gcc
linux一般会自带了gcc,我们先检测一下自己系统的gcc版本
gcc --version
而cuda的gcc依赖版本在官方文档的安装指南上会给出
sudo apt-get install gcc-7.0
sudo apt-get install g++-7.0
安装完成后需要更换系统gcc版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50
选择需要的版本
sudo update-alternatives --config gcc
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gcc-9 50 自动模式
1 /usr/bin/g++-9 50 手动模式
2 /usr/bin/gcc-7 50 手动模式
安装cuda
sudo sh cuda_你的版本_linux.run
配置环境变量
sudo vim ~/.bashrc
将下面的命令复制进去
export PATH=/usr/local/cuda-10.2/bin${PATH:+:$PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
检查是否安装成功
nvcc -V
3.3.3 安装cudnn
https://developer.nvidia.com/cudnn 选择对应cuda的版本即可
然后将cudnn解压后的include和lib64文件夹复制到cuda中
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include #解压后的文件夹名字为cuda-10.2
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h /usr/local/cuda-10.2/lib64/libcudnn*
3.3.4 安装pytorch-gpu
conda安装:
# 选择自己对应的cuda版本
conda install pytorch torchvision cudatoolkit=10.2
pip安装:
pip install torch torchvision -i https://pypi.mirrors.ustc.edu.cn/simple
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~